// 创建正则的各个方法




/**
 * 生成识别注解的正则
 * id 是注解的
 * 
 */


/**
 * 截取固定符号中间的数据
 */
export function subStr(data:string,{start,end,not=false}){
    if(not){
        return data.replace(new RegExp(`${start}.*?${end}`),"");
    }else{
        return data.match(new RegExp(`${start}.*?(?=${end})`))?.[0]?.substring(start.length-1) || '';
    }
}

/**
 * 截取固定符号中间的数据
 * 可以输入多个条件
 */
 export function subStrs(data:string,{start=[],end=[],not=false}){
    if(not){
        return data.replace(new RegExp(`(${start.join("|")}).*?(${end.join("|")})`),"").replace(new RegExp(`(${end.join("|")})*?(${end.join("|")})`),"");
    }else{
        return data.replace(new RegExp(`.*?(${start.join("|")})?`,"g"),"").replace(new RegExp(`(${end.join("|")}).*?$`,"g"),"");
    }
}

/**
 * 从字符串前面开始截取
 */
export function subStart(data:string,end:Array<string>=[]){
    return data.replace(new RegExp(`(${end.join("|")})[^]*?$`),"");
}

/**
 * 去除前后空格
 */
export function trim(data){
    return data.replace(/^[ ]*|[ ]*$/g,"")
}

if(module)module.exports = {subStr, subStrs, subStart, trim};
export default {subStr, subStrs, subStart, trim};